/*
 Программка - демострация выравнивания текста в JLabel
 */
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;

class AlignLabelDemo
{
    AlignLabelDemo()
    {
       //Создание нового компонента JLabel с 9-ю элемтами (массив - [])
       JLabel[] jlabs=new JLabel[9];

       //создание контейнера верхнего уровня (JFrame)
       //при помощи конструктора
       JFrame jfrm= new JFrame("Horizontal and vertical aligment");

       /*Установка диспетчера компоновки FlowLayour
        Создание таблицы из 3 строк и 3 столобцов с зазором 4 пикселя между
        компонентами*/
       jfrm.setLayout(new GridLayout(3,3,4,4));

       //Установка начальник размеров фрейма
       jfrm.setSize(500,200);

       //Завершение программы при закрытии пользователем окна приложения
       jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       //Гор. выравнивание слева и по вертикали сверху
       jlabs[0]=new JLabel("Left, top",SwingConstants.LEFT);
       jlabs[0].setVerticalAlignment(SwingConstants.TOP);

       //Гор. выравнивание центр и по вертикали сверху
       jlabs[1]=new JLabel("Center, top",SwingConstants.CENTER);
       jlabs[1].setVerticalAlignment(SwingConstants.TOP);

       //Гор. выравнивание справо и по вертикали сверху
       jlabs[2]=new JLabel("Right, top",SwingConstants.RIGHT);
       jlabs[2].setVerticalAlignment(SwingConstants.TOP);

       //Гор. выравнивание слева и по вертикали центр (по умолчанию)
       jlabs[3]=new JLabel("Left, center",SwingConstants.LEFT);

       //Гор. выравнивание центр и по вертикали центр (по умолчанию)
       jlabs[4]=new JLabel("Center, center",SwingConstants.CENTER);

       //Гор. выравнивание справо и по вертикали центр (по умолчанию)
       jlabs[5]=new JLabel("Right, center",SwingConstants.RIGHT);

       //Гор. выравнивание слево и по вертикали внизу
       jlabs[6]=new JLabel("Left, bottom",SwingConstants.LEFT);
       jlabs[6].setVerticalAlignment(SwingConstants.BOTTOM);

       //Гор. выравнивание центр и по вертикали внизу
       jlabs[7]=new JLabel("Center, bottom",SwingConstants.CENTER);
       jlabs[7].setVerticalAlignment(SwingConstants.BOTTOM);

       //Гор. выравнивание справо и по вертикали внизу
       jlabs[8]=new JLabel("Right, bottom",SwingConstants.RIGHT);
       jlabs[8].setVerticalAlignment(SwingConstants.BOTTOM);

       /*Добавление рамок для отображение вокруг меток
        Создание цветной рамки м толщиной линии 1 пиксель*/
       Border border_R=BorderFactory.createLineBorder(Color.PINK, 1);

       //Добавление рамки к каждой метке
       for(int i=0;i<9;i++)
           jlabs[i].setBorder(border_R);

       //Добавление рамки к панели содержимого
       for(int i=0;i<9;i++)
           jfrm.add(jlabs[i]);

       //Добавление пустой рамки к панели содержимого
       JPanel cp=((JPanel) jfrm.getContentPane());

       /*Пустая рамка создает зазор между краем фрейма и содержащимися
        в нем элементами*/
       cp.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));

       //Отображение фрейма
       jfrm.setVisible(true);
    }

       public static void main(String[] args)
   {
       //Создание фрейма в потоке обработки событий
       SwingUtilities.invokeLater
               (
               new Runnable()
                  {
                  public void run()
                    {
                     new AlignLabelDemo();
                    }
                  }
               );
   }

}
